package com.yociyy.admin.biz;

import java.util.List;

import cn.hutool.core.util.ObjectUtil;
import com.yociyy.admin.mapper.BasePostMapper;
import com.yociyy.admin.model.entity.BasePost;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.yociyy.admin.model.constant.UserConstants;

/**
 * 系统-岗位信息表 biz
 *
 * @author Y.yang
 * @date 2019-12-03
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class BasePostBiz {

	@Autowired
	private BasePostMapper postMapper;

	/**
	 * 新增岗位信息
	 *
	 * @param post 岗位信息
	 * @return 结果
	 */
	public int insertPost(BasePost post) {
		return postMapper.insertSelective(post);
	}

	/**
	 * 修改岗位信息
	 * 
	 * @param post 岗位信息
	 * @return 结果
	 */
	public int updatePost(BasePost post) {
		return postMapper.updateByPrimaryKeySelective(post);
	}

	/**
	 * 批量删除岗位信息
	 *
	 * @param ids id数组
	 * @return 结果
	 */
	public int deleteByIds(long[] ids) {
		return postMapper.deletePostByIds(ids);
	}

	/**
	 * 查询全部岗位信息
	 * 
	 * @return 岗位信息列表
	 */
	public List<BasePost> selectPostAll() {
		return postMapper.selectPostAll();
	}

	/**
	 * 校验岗位名称唯一性
	 *
	 * @param post 岗位信息
	 * @return 结果
	 */
	public String checkPostNameUnique(BasePost post) {
		Long postId = ObjectUtil.isNull(post.getId()) ? -1L : post.getId();
		BasePost info = postMapper.checkPostNameUnique(post.getPostName());
		if (ObjectUtil.isNotNull(info) && info.getId().longValue() != postId.longValue()) {
			return UserConstants.POST_NAME_NOT_UNIQUE;
		}
		return UserConstants.POST_NAME_UNIQUE;
	}

	/**
	 * 校验岗位编码唯一性
	 *
	 * @param post 岗位信息
	 * @return 结果
	 */
	public String checkPostCodeUnique(BasePost post) {
		Long postId = ObjectUtil.isNull(post.getId()) ? -1L : post.getId();
		BasePost info = postMapper.checkPostCodeUnique(post.getPostCode());
		if (ObjectUtil.isNotNull(info) && info.getId().longValue() != postId.longValue()) {
			return UserConstants.POST_CODE_NOT_UNIQUE;
		}
		return UserConstants.POST_CODE_UNIQUE;
	}

}